<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 给对象本身添加属性描述

        // 区别：与create区别：它是只给当前对象添加属性，它的返回是对象本身。
        // 共同点：都是给当前对象添加属性
        // Object.defineProperties(obj,{多个属性}) //复数形式/参数不同（2个参数）
        // Object.defineProperty(obj,属性名,{属性描述}) //单数形式/3个参数
        
        // 区别：与defineProperty区别
        // 它是在一个对象基础之上，以对象为原型，创建的新对象,它的返回是一个新的对象
        // Object.create()

        var obj = {};

        (function(){
            var _like = null;
            // 给对象添加多个属性
           var obj2 = Object.defineProperties(obj,{
                name:{
                    value:'老王'
                },
                age:{
                    value:18
                },
                like:{
                    get:function(){
                        // return  _like || [];

                        // 如果不写return 
                        // 默认return undefined;
                    },
                    set:function(v){
                        _like = v;
                    }
                }
            });

            console.log(obj2);
        })();

        obj.like = ['篮球','足球','乒乓球'];

        console.log(obj);




    </script>
</body>
</html>